#没有使用继承前的代码
#小学生类
class Pupil:
    #定义属性
    name = None
    age = None
    __score = None

    #定义构造方法
    def __init__(self , name , age):
        self.name = name
        self.age = age

    #定义普通的公开方法
    def show_info(self):
        print(f"name={self.name} age = {self.age} score = {self.__score}")

    def set_score(self , score):
        self.__score = score

    def testing(self):
        print("小学生在考小学数学...")


#创建一个大学生类
class Graduate:
    #定义普通属性
    name = None
    age = None
    #定义私有属性
    __score = None

    def __init__(self , name , age):
        self.name = name
        self.age = age

    def show_info(self):
        print(f"name={self.name} , age = {self.age} score = {self.__score}")

    def set_score(self , score):
        self.__score = score

    def testing(self):
        print(f"大学生在考高等数据...")



#测试这两个类
stduent1 = Pupil("apple" , 10)
stduent1.testing()
stduent1.set_score(80)
stduent1.show_info()


print(("-"*50))
stduent2 = Graduate("grape" , 22)
stduent2.testing()
stduent2.set_score(100)
stduent2.show_info()


#问题分析
#1.Pupil和Graduate有很多相同的属性和方法
#2.目前这样的做法,代码复用性差
#3.同时也不利于代码的维护和管理

